/**
 * middleware中间件，可以理解为拦截器
 * 登陆拦截器,当用户没有登陆的时候，主拉截信息
 */
const appConfig = require("../../config/appConfig");
/**
 * @param {*} options 配置这个中间件的时候的参数
 * @param {Application} app对象实例
 */
module.exports = (options, app) => {
    /**
     * @param {Context} ctx  当前的上下文对象
     * @param {function} next 执行下一步操作的方法
     */
    return async (ctx, next) => {
        if (ctx.session.userInfo) {
            await next();
        } else {
            if (appConfig.excludePath.includes(ctx.request.path)) {
                await next();
            } else {
                await ctx.response.redirect("/");
            }
        }
    }
}
